<?php

/*
 * TiersController.php
 */

namespace RHX\Controller;

use RHX\Model\Object\CodeActivite;
use Zend\View\Model\JsonModel;
use RHX\Helper\Uploader;

class TiersController extends RHXController {

    /**
     * Page d'accueil "Gestion des tiers"
     *
     * @return array
     */
    public function indexAction() {
        //tbl
        
	return array(
            'flag' => 'Tiers'
        );
    }

    public function loadIndexAction() {
	// Changement du Layout
	$this->layout('layout/ajax');
        
        //tables
        $tiersTbl    =  $this->getService('Table\TiersTable');
        $list_tiers          =  $tiersTbl->getAll();
        
	// Paramèters
	return array(   
            'list_tiers' => $list_tiers
	);
    }
    
    /*
     * edition d'un tiers
     */
    public function editAction(){
        // params
        $idTiers = (int) $this->params()->fromRoute('id', 0);
        
        //config 
        $config = $this->getServiceLocator()->get('config');        
        $repUpload = $config['upload_directory']['tiers'];
        
        //tbl
        $tiersTbl   =  $this->getService('Table\TiersTable');
        $tiers      =  $tiersTbl->get($idTiers);
                
        $this->layout('layout/rhx');
        return array(   
            'tiers'=> $tiers ,
            'rep_upload' => $repUpload
	);
    }
    
    /*
     * suppression d'un tiers
     */
    public function deleteAction(){        
        // Layout
	$this->layout('layout/ajax');

	// POST
	$post	 = $this->getRequest()
		->getPost();
	$id	 = (int)$post->id;
        
	// Table
	$tiersTable = $this->getService('Table\TiersTable');
	// Traitement des informations
	$n = $tiersTable->erase($id);
        var_dump($n);
	return array(
	    'id'	 => $id	    
	);
    }
    
    /*
     * ajout d'un tiers
     */
    public function addAction(){        
        // Layout
	$this->layout('layout/rhx');
        
        $query = $this->getRequest();
        
	return array(
            
	);
    }
    
    /*
     * ajout des données du nouveau Tiers 
     */
    public function addNewAction(){        
        // Layout
	$this->layout('layout/rhx');
        
        // vbl
        $post = $this->getRequest()->getPost();
        $data = $post->store;
        var_dump($data);        
        
        // tbl
        $tiersTbl = $this->getService('Table\TiersTable');
        
	// change name's photo & name's rib
	//...
	
        $tiers = new \RHX\Model\Object\Tiers ($tiersTbl->getAdapter(), $data);
        var_dump($tiers);
        $tiersTbl->save($tiers);
        
	return $this->redirect()->toRoute('RHX/default', array('controller' => 'tiers'));
    }
    
    
     /**
     * Edition des données chaine en base d'un Tiers
     *
     * @return array
     */
    public function editDataAction() {
	// Changement de layout
	$this->layout('layout/ajax');

	// Données en POST
	$post = $this->getRequest()
		->getPost();

	// Variables
	$pk	 = $post->pk;
	$name	 = $post->name;
	$value	 = addslashes($post->value);
        
	// Adapter de la base de données
	$adapter = $this->getAdapter();

	// Requête SQL
	$sql	 = "UPDATE rh_tiers SET $name = '$value' WHERE id = $pk";
	$result	 = $adapter->query($sql)
		->execute();
        //\Zend\Debug\Debug::dump($sql);
	return array(
	    'sql'	 => $sql,
	    'result' => $result,
	);
    }
    
    /**
     * Edition des données nombre en base d'un Tiers
     *
     * @return array
     */
    public function editDataNumberAction() {
	// Changement de layout
	$this->layout('layout/ajax');

	// Données en POST
	$post = $this->getRequest()
		->getPost();

	// Variables
	$pk	 = $post->pk;
	$name	 = $post->name;
	$value	 = addslashes($post->value);
        
	// Adapter de la base de données
	$adapter = $this->getAdapter();

	// Requête SQL
	$sql	 = "UPDATE rh_tiers SET $name = $value WHERE id = $pk";
	$result	 = $adapter->query($sql)
		->execute();
        //\Zend\Debug\Debug::dump($sql);
	return array(
	    'sql'	 => $sql,
	    'result' => $result,
	);
    }
    
    /**
     * Téléchargement du photo d'un tiers
     *
     * @return array
     */
    public function uploadPhotoAction() {
        $this->layout('layout/iframe2');
        $query = $this->getRequest();
        
        // tables         
        $tiersTbl   =  $this->getService('Table\TiersTable');
        
        if ($query->isPost()) {
            $post = $query->getPost();
            $config = $this->getServiceLocator()->get('config');
            
            $idTiers = (int) $post->tiers_id;
            
            if ($idTiers !== 0)                
                $tiers = $tiersTbl->get($idTiers);
            else
                $tiers = null;
            
            $random = rand();
            
            $dir = $config['upload_directory']['tiers']['photo'];
            
            $name = $dir.$random. ".jpg";
            // Téléchargement du fichier PHOTO
            $extensions = array('jpg', 'png', 'gif');
            $result = Uploader::upload('photo', $name, FALSE, $extensions );
            $result['destination'] = "$random.jpg";
            
             if ($result['done']) {
                //echo "<pre>DONE = true</pre>";                
                
                if ($idTiers > 0) {
                    // Mise à jour des données
                    $newName  = $dir. 'photo-' . $idTiers . '.' . $result['extension'];
                    $newName2 = str_replace('public/', '', $newName);
                    // renommer fichier
                    if (@rename($name, $newName) || @rename($name, $newName2)) {
                        $result['destination'] = 'photo-' . $idTiers . '.' . $result['extension'];
                    }
                }
                return array(             
                    'tiers' => $tiers,
                    'fichier' => $result['name'],
                    'dir_photo' =>   $dir,
                    'destination' => $result['destination'],
                    'extension' => $result['extension'],
                    'error' => $result['error'],
                );
            }
            elseif( $result['error'] ){
                 return array(
                    'tiers' => $tiers,
                    'fichier' => null,                    
                    'error' => $result['error'],                    
                );
            }
        }
        
        //get         
        $idTiers = (int) $this->params()->fromRoute('id', 0);        
        
        //new tiers
        if($idTiers == 0){
            return array(
            'tiers' => null,
            'newTiers' => true,
            'fichier' => null,
            );
        }
        //tiers existant
        $tiers = $tiersTbl->get($idTiers);
        
        return array(
            'tiers' => $tiers,
            'fichier' => null,
        );
	
    }
     /**
     * Téléchargement de fichier RIB 
     *
     * @return array
     */
    public function uploadRibAction() {
        $this->layout('layout/iframe2');
        $query = $this->getRequest();
        
        // tables         
        $tiersTbl   =  $this->getService('Table\TiersTable');
        
        if ($query->isPost()) {
            $post = $query->getPost();
            $config = $this->getServiceLocator()->get('config');
            
            $idTiers = (int) $post->tiers_id;
            
            if ($idTiers !== 0)                
                $tiers = $tiersTbl->get($idTiers);
            else
                $tiers = null;
            
            $random = rand();
            
            $dir = $config['upload_directory']['tiers']['rib'];
            
            $name = $dir.$random. ".jpg";
            // Téléchargement du fichier RIB
            $extensions = array('jpg', 'png', 'gif');
            $result = Uploader::upload('rib', $name, FALSE, $extensions );
            $result['destination'] = "$random.jpg";
            
             if ($result['done']) {
                //echo "<pre>DONE = true</pre>";                
                
                if ($idTiers > 0) {
                    // Mise à jour des données
                    $newName  = $dir. 'rib-' . $idTiers . '.' . $result['extension'];
                    $newName2 = str_replace('public/', '', $newName);
                    // renommer fichier
                    if (@rename($name, $newName) || @rename($name, $newName2)) {
                        $result['destination'] = 'rib-' . $idTiers . '.' . $result['extension'];
                    }
                }
                return array(             
                    'tiers' => $tiers,
                    'fichier' => $result['name'],
                    'dir_rib' =>   $dir,
                    'destination' => $result['destination'],
                    'extension' => $result['extension'],
                    'error' => $result['error'],
                );
            }
            elseif( $result['error'] ){ 
                 return array(
                    'tiers' => $tiers,
                    'fichier' => null,                    
                    'error' => $result['error'],                    
                );
            }
        }
        
        //get         
        $idTiers = (int) $this->params()->fromRoute('id', 0);        
        
        //new tiers
        if($idTiers == 0){
            return array(
            'tiers' => null,
            'newTiers' => true,
            'fichier' => null,
            );
        }
        //tiers existant
        $tiers = $tiersTbl->get($idTiers);
        
        return array(
            'tiers' => $tiers,
            'fichier' => null,
        );
	
    }
}

?>
